
package com.insigma.business.qrcode.soldier.service;




import com.insigma.business.qrcode.soldier.entity.DataStatsCDO;
import com.insigma.business.qrcode.soldier.entity.SoldierUnemploymentRegistrationInfoDO;
import com.insigma.business.qrcode.soldier.request.SoldierUnemploymentRegistrationInfoBSearcher;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public interface SoldierUnemploymentRegistrationInfoService {

    
    List<SoldierUnemploymentRegistrationInfoDO> search(final SoldierUnemploymentRegistrationInfoBSearcher innerSearcher);

    
    SoldierUnemploymentRegistrationInfoDO get(final String id);

    
    Integer insert(final SoldierUnemploymentRegistrationInfoDO soldierUnemploymentRegistrationInfo);

    
    Integer update(final SoldierUnemploymentRegistrationInfoDO soldierUnemploymentRegistrationInfo);

    
    Integer delete(final String id, final String modifierType, final String modifierId);

    
    List<SoldierUnemploymentRegistrationInfoDO> getByIdCardNo(String idCardNo);

    List<SoldierUnemploymentRegistrationInfoDO> getByIdCardNoWithDeleted(String idCardNo);

    List<SoldierUnemploymentRegistrationInfoDO> listAllUnemploymentSolider(SoldierUnemploymentRegistrationInfoBSearcher searcher);

    Integer countByType(String type);

    Integer countByTypeAndArea(String type, String adminAreaCode);

    Integer countByStatus(String status);

    Integer countByStatusAndArea(String status, String adminAreaCode);

    Integer countNotEmployment(String adminAreaCode);

    List<DataStatsCDO> countUnemploymentRegistrationAreaMap(String adminAreaCode);

    List<DataStatsCDO> countUnemploymentRegistrationAreaMap(String adminAreaCode, List<String> statusList);

    List<DataStatsCDO> countUnemploymentRegistrationAgeMap(String adminAreaCode);

    Integer countNotEmploymentByStatusList(String adminAreaCode, List<String> status);


    List<SoldierUnemploymentRegistrationInfoDO> listAllAutoEmployment();

    List<DataStatsCDO> groupTypeAreaMap(String adminAreaCode, String source);

    Integer countBySource(String adminAreaCode, String source, Date startDate);

    Integer countByCreateDatetime(String adminAreaCode, String month);

    List<DataStatsCDO> groupAreaByTime(String adminAreaCode, Date startDate, Date endDate);

    List<Double> listVisitSecondDiff(String adminAreaCode);

    List<DataStatsCDO> groupAreaByTimeAndIsVisited(String adminAreaCode, Date startDate, Date endDate, boolean visited);

    List<DataStatsCDO> groupHistory(String adminAreaCode, List<String> registrationStatusList, List<String> historyStatusList);

    
    Integer countHistory(String adminAreaCode, String historyStatus);

    Integer countRegistrationHistory(String adminAreaCode, ArrayList<String> registrationStatusList, ArrayList<String> historyStatusList);
}
